package com.example.onlinemallsystem.service;


import com.example.onlinemallsystem.entity.User;
import com.example.onlinemallsystem.service.ex.PasswordNotMatchException;
import com.example.onlinemallsystem.service.ex.UserNotFoundException;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface UserService {
    void insert(User user);

    /**
     * 用户注册
     * @param user 用户数据
     */
    void reg(User user);

    /**
     * 用户登录
     *
     * @param username 用户名
     * @param password 密码
     * @param userType
     * @return 登录成功的用户数据
     */
    User login(String username, String password, String userType) throws UserNotFoundException, PasswordNotMatchException;


    /**
     * 获取当前登录的用户的信息
     * @param id 当前登录的用户的id
     * @return 当前登录的用户的信息
     */
    User getById(Long id);


    /**
     * 修改用户资料
     * @param user 用户的新的数据
     */
    void changeInfo(User user);

    /**
     * 获取所有用户列表
     * @return 用户列表
     */
    List<User> getAllUsers();

    /**
     * 删除用户（软删除）
     * @param id 用户ID
     */
    void deleteUser(Long id);

}
